package abstractdemo;

 /*
 * 类型： class类,  enum枚举
 */

//!!!如果一个类中有抽象方法，则必须被声明为抽象类
//abstract ,final 一山不容二虎
abstract class OldPeople{
	String name;
	int age;
	public void eat(String food) {
		//方法体从 {开始 }结束
		//方法体可以是空的,空实现
	}
	// 没有实现飞的方法，此方法没有方法体
	// 一个方法如果没有方法体，!!!必须被声明为抽象方法
	public abstract void fly();   //没有方法体的方法必须以;结尾
}

// 抽象类的目的就是为了被继承，抽象方法被重写(有实现)
class NewPeople extends OldPeople{
	@Override
	public void fly() {
		System.out.println("现代人坐飞机实现了飞的功能");
	}
}

public class Demo1 {
	public static void main(String[] args) {
		//OldPeople op = new OldPeople();  //OldPeople类不能实例化
		OldPeople op = new NewPeople();
		op.fly();
		op.name = "艾昂";
		op.age = 10;
		op.eat("护心肉");
	}
}
